草庐IT

c++ - C++ 中 (x) 的类型

全部标签

c++ - 通过更高级别的结构访问子变量

如果我有这些结构:typedefstruct{intx;}foo;typedefstruct{foof;}bar;通常你会通过b.f.x访问x,但是有没有办法设置它,这样你就可以访问元素x而无需引用f?barb;b.x=...我的第一个直觉是你不能,因为如果两个子结构都有一个成员x并且我无法弄清楚编译错误会是什么,那么可能会发生名称冲突。不过,我记得我曾在一些可行的框架中工作过。在C++中,我曾经在一个存在bar的框架中工作过,您可以从不同的类作为成员变量this->x访问它的成员。我正在尝试弄清楚如何做到这一点。 最佳答案 你可以

c++ - C 与 C++ 中的结构标记

我编写了以下简单程序并在gcc编译器上编译了它#includetypedefinti;voidfoo(){structi{ii;}i;i.i=3;printf("%i\n",i.i);}intmain(){foo();}它在C中编译和运行良好。(参见现场演示here)但在C++中编译失败。C++编译器给出以下错误信息。prog.cc:Infunction'voidfoo()':prog.cc:5:17:error:field'i'hasincompletetype'foo()::i'structi{ii;}i;^prog.cc:5:12:note:definitionof'struct

c++ - C 与 C++ 中的结构标记

我编写了以下简单程序并在gcc编译器上编译了它#includetypedefinti;voidfoo(){structi{ii;}i;i.i=3;printf("%i\n",i.i);}intmain(){foo();}它在C中编译和运行良好。(参见现场演示here)但在C++中编译失败。C++编译器给出以下错误信息。prog.cc:Infunction'voidfoo()':prog.cc:5:17:error:field'i'hasincompletetype'foo()::i'structi{ii;}i;^prog.cc:5:12:note:definitionof'struct

java - 什么会导致 Java native 函数(在 C 中)在进入时出现段错误?

该项目我正在使用Javanative接口(interface)为内部网络和网络测试工具的C库编写Java命令行接口(interface)。C代码(不是我写的)复杂且低级,通常在位级别操作内存,并且专门使用原始套接字。该应用程序从C端(在后台运行的pthreads)和Java端(ScheduledThreadPoolExecutors运行调用native代码的线程)是多线程的。也就是说,C库应该大部分是稳定的。事实证明,Java和JNI接口(interface)代码导致了问题。问题应用程序在进入nativeC函数时因段错误而崩溃。这仅在程序处于特定状态时发生(即成功运行特定native函

java - 什么会导致 Java native 函数(在 C 中)在进入时出现段错误?

该项目我正在使用Javanative接口(interface)为内部网络和网络测试工具的C库编写Java命令行接口(interface)。C代码(不是我写的)复杂且低级,通常在位级别操作内存,并且专门使用原始套接字。该应用程序从C端(在后台运行的pthreads)和Java端(ScheduledThreadPoolExecutors运行调用native代码的线程)是多线程的。也就是说,C库应该大部分是稳定的。事实证明,Java和JNI接口(interface)代码导致了问题。问题应用程序在进入nativeC函数时因段错误而崩溃。这仅在程序处于特定状态时发生(即成功运行特定native函

c++ - 断言(0)是什么意思?

我在一次考试中遇到了这样的问题,但我仍然不太确定如何回答。我知道断言是测试您的程序的方法,但是我不太确定assert(0)正在检查什么。这是一个技巧问题吗?它总是会失败,但我不明白为什么。它在检查什么?任何解释都会很棒,谢谢。 最佳答案 C++标准推迟了assert的定义符合C标准。C99§7.2/2:”Theassertmacroputsdiagnostictestsintoprograms;itexpandstoavoidexpression.Whenitisexecuted,ifexpression(whichshallhav

c++ - 断言(0)是什么意思?

我在一次考试中遇到了这样的问题,但我仍然不太确定如何回答。我知道断言是测试您的程序的方法,但是我不太确定assert(0)正在检查什么。这是一个技巧问题吗?它总是会失败,但我不明白为什么。它在检查什么?任何解释都会很棒,谢谢。 最佳答案 C++标准推迟了assert的定义符合C标准。C99§7.2/2:”Theassertmacroputsdiagnostictestsintoprograms;itexpandstoavoidexpression.Whenitisexecuted,ifexpression(whichshallhav
12